/*
 * $Id: DisciplinePlanningItem.java 1599 2011-08-21 10:44:52Z jyang $
 * 
 * Copyright (c) 2001-2008 Accentrix Company Limited. All Rights Reserved.
 * 
 * Accentrix Company Limited. ("Accentrix") retains copyright on all text, source
 * and binary code contained in this software and documentation. Accentrix grants
 * Licensee a limited license to use this software, provided that this copyright
 * notice and license appear on all copies of the software. The software source
 * code is provided for reference purposes only and may not be copied, modified 
 * or distributed.
 * 
 * THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS," WITHOUT ANY WARRANTY OF
 * ANY KIND UNLESS A SEPARATE WARRANTIES IS PURCHASED FROM ACCENTRIX AND REMAINS
 * VALID.  ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. ACCENTRIX SHALL NOT BE LIABLE
 * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING OR MODIFYING THE
 * SOFTWARE OR ITS DERIVATIVES.
 * 
 * IN NO EVENT WILL ACCENTRIX BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE
 * USE OF OR INABILITY TO USE SOFTWARE, EVEN IF ACCENTRIX HAS BEEN ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES.
 */
package com.lightsaber.trade.cloth.entity.planning;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.lightsaber.trade.core.entity.BaseEntity;
import com.lightsaber.trade.cloth.entity.category.CategoryNode;

@Entity
@Table(name = "MHPP_DISCIPLINE_PLANNING_ITEM")
public class DisciplinePlanningItem extends BaseEntity {

    private static final long serialVersionUID = -4572250934127370680L;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "LEVEL_1_PLANNING_ID", updatable = false)
    private Level1Planning level1Planning;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "CATEGORY_NODE_ID", updatable = false)
    private CategoryNode categoryNode;

    @Column(name = "PLAN_YEAR", nullable = false)
    private Integer planYear;

    @Column(name = "DISCIPLINE", nullable = false, length = 50)
    private String discipline;

    @Column(name = "FUNDING_MODE", nullable = false, length = 50)
    private String fundingMode;

    @Column(name = "PLANNED_PLACES", nullable = true, length = 4)
    private long plannedPlaces;

    @Column(name = "ACTUAL_ENROLMENT", nullable = true, length = 4)
    private long actualEnrolment;

    @Column(name = "PLANNED_NEW", nullable = true, length = 4)
    private long plannedNew;

    @Column(name = "PLANNED_PROGRESSING", nullable = true, length = 4)
    private long plannedProgressing;

    public Level1Planning getLevel1Planning() {
        return level1Planning;
    }

    public void setLevel1Planning(final Level1Planning level1Planning) {
        this.level1Planning = level1Planning;
    }

    public String getDiscipline() {
        return discipline;
    }

    public void setDiscipline(final String discipline) {
        this.discipline = discipline;
    }

    public String getFundingMode() {
        return fundingMode;
    }

    public void setFundingMode(final String fundingMode) {
        this.fundingMode = fundingMode;
    }

    public CategoryNode getCategoryNode() {
        return categoryNode;
    }

    public long getPlannedProgressing() {
        return plannedProgressing;
    }

    public void setPlannedProgressing(final long plannedProgressing) {
        this.plannedProgressing = plannedProgressing;
    }

    public void setCategoryNode(final CategoryNode categoryNode) {
        this.categoryNode = categoryNode;
    }

    public Integer getPlanYear() {
        return planYear;
    }

    public void setPlanYear(final Integer planYear) {
        this.planYear = planYear;
    }

    public long getPlannedPlaces() {
        return plannedPlaces;
    }

    public void setPlannedPlaces(final long plannedPlaces) {
        this.plannedPlaces = plannedPlaces;
    }

    public long getActualEnrolment() {
        return actualEnrolment;
    }

    public void setActualEnrolment(final long actualEnrolment) {
        this.actualEnrolment = actualEnrolment;
    }

    public long getPlannedNew() {
        return plannedNew;
    }

    public void setPlannedNew(final long plannedNew) {
        this.plannedNew = plannedNew;
    }
}
